//[参考](https://www.liuchuo.net/archives/460)
#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
#include <unordered_map>

using namespace std;

const int N = 110;

/*
所以一句话总结字符串的要求：只能有一个P一个T，中间末尾和开头可以随便插入A。但是必须满足开头的A的个数 * 中间的A的个数 = 结尾的A的个数，而且P和T中间不能没有A～
*/

// p记录字符P当前的位置
// t记录字符T当前的位置
int n, p, t;

int main()
{
    cin >> n;
    // 输入字符传
    string s;
    while(n --)
    {
        cin >> s;
        // mp 记录所有字符出现的个数
        unordered_map<char, int> mp;
        for(int i = 0; i < s.size(); i ++)
        {
            // 记录每个字符出现的次数
            mp[s[i]] ++;
            // 记录p和t出现的次数
            if(s[i] == 'P') p = i;
            if(s[i] == 'T') t = i;  
        }
        // 如果P的个数是1
        // T的个数是1
        // 字符数是3
        // 如果t - p != 1说明t和p之间夹了一个数
        // AAPATAA
        // p * (t - p - 1) = (len - t - 1)
        if(mp['P'] == 1 && mp['T'] == 1 && mp.size() == 3 && t - p != 1 && p * (t - p - 1) == (s.size() - t - 1))
        {
            cout << "YES" << endl;
        }
        else 
        {
            cout << "NO" << endl;
        }
    }
    return 0;
}